The latter half of the twentieth century has been witness to a phenomenon known as the information revolution. While the information revolution is a historical development broader in scope than any one event or machine, no single device has come to represent the information revolution more than the digital electronic computer. The development of computer systems has surely been a revolution. Each year, computer systems grow faster, store more data, and provide more applications to their users.
The extensive data storage needs of modern computer systems require large capacity mass data storage devices. While various data storage technologies are available, the rotating magnetic rigid disk drive has become by far the most ubiquitous. Such a disk drive data storage device is an extremely complex piece of machinery, containing precision mechanical parts, ultra-smooth disk surfaces, high-density magnetically encoded data, and sophisticated electronics for encoding/decoding data, and controlling drive operation. Each disk drive is therefore a miniature world unto itself, containing multiple systems and subsystem, each one of which is needed for proper drive operation. Despite this complexity, rotating magnetic disk drives have a proven record of capacity, performance and cost which make them the storage device of choice for a large variety of applications.
A disk drive typically contains data recorded in multiple sectors located on concentric tracks on the surface of one or more flat disks, which rotate at a constant speed. In order to access data (read data from the disk or write data to the disk), a moveable actuator positions a transducer adjacent a desired data track. The drive then waits until the disk rotates to an angular position in which the desired data sector is directly adjacent the transducer. The time required for the disk drive to execute any given data access operation therefore includes the time required to move the actuator from its current position to the desired track position (referred to as a seek) and the time required to wait until the disk rotates to the desired angular position (referred to as latency). The execution time also includes the time required to actually read or write the data once the actuator is properly positioned, but experience has shown that for many operating environments, the amount of data accessed in each operation is relatively small, and that the seek and latency times are more significant than the time required to read or write the data.
Data is formatted in blocks on the disk surface, and read write operations to the disk surface are always in some multiple of blocks. One of the fundamental design issues for any disk drive is the block size of data transfer, in other words, the minimum amount of data that can be accessed in a data access operation. A smaller block size tends to reduce the amount of unnecessary data transfer, i.e., the number of unneeded bytes that must be read or written simply because they are in the same block as the needed data. On the other hand, larger block sizes generally increase the formatting efficiency, since a certain amount of disk surface must be devoted to block identification, block boundaries, and so forth. Larger block sizes also tend to reduce the soft error rate. Thus, a design trade-off exists, and an optimal block size is chosen which is a compromise of these competing factors.
In order to keep up with advances in other areas of digital data processing technology, disk drive storage devices must make continual improvements in performance, reliability and data capacity. As both the computer industry and the design of disk drives have evolved, the choice of optimal block size has shifted to favor larger blocks. Several developments have influenced this shift. There has been an increase in the average size of data access operations due to many changes in the way software is written and the uses to which it is put. For example, software objects tend to be larger, database records tend to be larger, and disk storage is often used for holding massive graphics or multimedia files. Furthermore, the increased rotational speed of disks and the higher areal bit density have meant that a small number of unneeded bytes which are accessed near the end of a block become less significant in terms of performance impact, especially since seek and latency take up most of the time of a data access operation.
For a number of years, a 512-byte block size was considered a standard in the disk drive industry. As a result, a great deal of computer software has been written on the assumption of a 512-byte standard block size. In more recent years, it has become increasingly obvious to disk drive designers that block sizes should be increased. A size that is often mentioned as an alternative is 4 Kbytes (4096 bytes), although other sizes are possible. Some newer software is being written to a larger I/O size, such as 4K.
Although the desirability of larger blocks is evident, the transition from a 512-byte block size to a 4-Kbyte block size places disk drive designers in a quandary. At the host interface, it is possible to support any size data transfer. But if data is stored on the disk surface in the older 512-byte blocks, nothing is gained (i.e., formatting efficiency and soft error rate are the same as for older designs). On the other hand, if data is stored in 4-Kbyte blocks, there is a performance penalty associated with writing blocks of the older 512-byte size. I.e, if the host issues a write command for a block or set of adjacent blocks smaller than 4 Kbytes, the drive can not directly write a portion of the 4 Kbyte block, since other data in the same block will be lost. It must first read the entire 4-Kbyte block before it can perform the write, replace the old data within the block with the new data, and then write the entire updated block back to the disk (referred to as a read/modify/write).
A large volume of such small write operations may significantly affect the performance of a disk drive having an internal block size greater than the size of the write operations. A need exists for improved techniques for handling small write operations while at the same time obtaining the benefits of larger formatted block sizes.